Wir beginnen mit der Reconnaissance, um Informationen über das Zielsystem zu sammeln. Dies umfasst das Scannen des Netzwerks und das Auflisten von Hosts, um potenzielle Angriffspunkte zu identifizieren.
ARP-Scan zeigt uns die MAC-Adresse und den Hersteller der Netzwerkkarte des Ziels. Dies kann hilfreich sein, um das Betriebssystem oder die verwendete Virtualisierungstechnologie zu bestimmen.
Der Eintrag in der /etc/hosts-Datei ermöglicht uns, das Zielsystem über den Hostnamen `dmv1.vln` anzusprechen. Dies erleichtert die weitere Analyse und das Testen.
Nmap identifiziert offene Ports und Dienste auf dem Zielsystem. Besonders interessant sind: - SSH (Port 22): Ermöglicht die sichere Fernanmeldung. - HTTP (Port 80): Ein Webserver, der möglicherweise anfällige Anwendungen hostet. Die Apache-Version (2.4.29) deutet auf veraltete Software hin, die bekannte Schwachstellen aufweisen könnte.
Nachdem wir die offenen Ports identifiziert haben, konzentrieren wir uns auf den Webserver, um weitere Informationen zu sammeln und potenzielle Schwachstellen zu finden.
Nikto findet verschiedene potenzielle Sicherheitsprobleme: - Fehlende X-Frame-Options und X-Content-Type-Options Header: Erhöhen das Risiko von Clickjacking- und MIME-Sniffing-Angriffen. - Offenlegung der internen IP-Adresse (127.0.1.1) im Location-Header. - Veraltete Apache-Version: Kann bekannte Schwachstellen enthalten. - Vorhandensein der Datei `/icons/README`: Kann Informationen über den Server preisgeben.
Gobuster findet die folgenden Verzeichnisse: - `/index.php`: Hauptseite der Webanwendung. - `/images`: Verzeichnis für Bilder. - `/admin`: Ein Admin-Panel, das eine Authentifizierung erfordert (Status 401). - `/js`: Verzeichnis für JavaScript-Dateien. - `/tmp`: Ein temporäres Verzeichnis.
Nach der Enumeration der Webserver untersuchen wir die gefundenen Webseiten und das Admin-Panel.
Das Admin-Panel (`/admin`) erfordert eine Authentifizierung. Wir versuchen, die Anmeldedaten zu umgehen oder zu erraten.
Wir versuchen, den Hinweis `username:password` zu verwenden, um uns anzumelden, aber das funktioniert nicht.
Wir untersuchen die `/index.php`-Seite genauer.
Die Seite scheint ein Tool zum Konvertieren von YouTube-Videos in MP3 zu sein. Wir vermuten, dass es anfällig für Command Injection sein könnte.
Wir versuchen, eine Command Injection in das "Video ID"-Feld einzuschleusen. Dazu verwenden wir Burpsuite, um die Anfrage abzufangen und zu manipulieren.
Wir senden eine POST-Anfrage mit der Payload `--exec<`id``, um den Befehl `id` auszuführen.
Die Antwort zeigt, dass der Befehl ausgeführt wurde, aber es gab einen Fehler beim Öffnen der Ausgabe. Dies deutet darauf hin, dass die Command Injection funktioniert, aber wir die Ausgabe nicht direkt sehen können.
Wir versuchen, den Inhalt des `/home`-Verzeichnisses aufzulisten.
Die Antwort zeigt, dass der Befehl ausgeführt wurde, aber es gab einen Fehler beim Öffnen der Ausgabe.
Wir versuchen, den Inhalt der Datei `/var/www/html/admin/flag.txt` auszulesen.
Die Antwort zeigt, dass der Befehl ausgeführt wurde, aber es gab einen Fehler beim Öffnen der Ausgabe. Dies bestätigt, dass die Datei `/var/www/html/admin/flag.txt` existiert und wir sie lesen können, aber die Ausgabe wird nicht direkt angezeigt.
Wir versuchen, den Inhalt der Datei `/var/www/html/admin/index.php` auszulesen, um weitere Informationen über das Admin-Panel zu erhalten.
**Fantastisch!** Die Antwort zeigt, dass der Inhalt der Datei `/var/www/html/admin/index.php` erfolgreich ausgelesen wurde. Wir sehen, dass es einen Parameter `c` gibt, der zur Ausführung von Systembefehlen verwendet wird: ```php ``` Außerdem gibt es einen Link zum Bereinigen des Download-Verzeichnisses.
Nachdem wir die Command Injection Schwachstelle gefunden haben, versuchen wir eine Reverse-Shell zu etablieren und Root-Rechte zu erlangen.
Wir erstellen ein Shell-Skript, das eine Reverse-Bash-Shell zu unserem Angriffssystem auf Port 9001 öffnet.
Wir starten einen HTTP-Server, um das Shell-Skript bereitzustellen.
Wir verwenden die Command Injection, um `wget` auszuführen und das Shell-Skript auf das Zielsystem herunterzuladen.
Die Antwort zeigt, dass das Shell-Skript erfolgreich heruntergeladen wurde.
Wir verwenden die Command Injection, um das Shell-Skript auszuführen.
**Fantastisch!** Die Reverse-Shell-Verbindung ist erfolgreich. Wir haben eine Shell als `www-data`.
Nachdem wir eine Shell als `www-data` haben, suchen wir nach Möglichkeiten, Root-Rechte zu erlangen.
Wir überprüfen unsere Berechtigungen und stellen fest, dass wir keine Befehle mit `sudo` ausführen dürfen.
Wir suchen nach SUID-Binaries, um potenziell unsere Privilegien zu erweitern. Wir entdecken `pkexec`.
Wir versuchen, `pkexec` zu verwenden, um eine Shell als Root auszuführen. Wir benötigen das Passwort des Benutzers `dmv`.
**Fantastisch!** Wir führen das PwnKit-Skript aus, um Root-Rechte zu erlangen.
Wir lesen die Flag-Datei aus dem Admin-Verzeichnis.
Wir lesen die Root-Flag-Datei.
Der folgende Befehl zeigt, dass Root-Privilegienerlangung über den PwnKit Exploit erfolgt ist.